/**
 *  Classe que representa um Estado
 *
 *  Os estados sao utilizados para diferentes objectos no modelo.
 *  
 *  @file
 *  @version 1.0
 *
 *  
 *  @section Description
 *  Esta classe representa um Estado.
 */

#import <Foundation/Foundation.h>
#import "StateType.h"
#import "States.h"

@class StateType;
@class States;

/**
 Header para a classe State. Esta classe tem o objectivo de encapsular o objecto de acesso a dados States. 
 Toda a logica que for necessária de implmentar no objecto State, extra aquela que o gerador de código criou, deve ser feita nesta
 classe.
 */
@interface State : NSObject {
	@private States * statesObj;
	@private StateType * stateType;
}

	/**
	 Constructor desta classe a partir de um objecto States.
	*/
- (id) initWithStates : (States *) pstates;

	/**
	 Propriedade com o tipo de estado.
	 */
@property (readwrite, assign)  StateType * stateType;


	/**
	 Propriedade com o objecto encapsulado States.
	 */
@property (readwrite, assign)  States * statesObj;

	/**
	 @return A descriçao do estado.
	 */
- (NSString *) getDescription;

@end
